package org.jrpc.base;

import java.util.List;

/**
 * 服务信息管理，主要是保存着服务于服务之间的关系，版本号version，组group，IP端口，上线，下线，
 */
public interface ServiceInfoManage {
    //获取全部的服务信息
    List<ServiceInfo> getServiceInfoAllList();

    //获取相同服务
    List<ServiceInfo> getServiceInfoByServiceName(String serviceName);

    //获取相同版本号的服务
    List<ServiceInfo> getServiceInfoByVersion(String version);

    //获取相同组的服务
    List<ServiceInfo> getServiceInfoByGroup(String group);

    //获取单个服务信息
    ServiceInfo getServiceInfo(String id);

    //设置服务的所有信息，初始化调用
    void setServiceInfoList(List<ServiceInfo> list);

    //上线服务，上线事件  默认推送全部，有group推group，再到里面的version
    void setUPServiceInfo(ServiceInfo serviceInfo);

    //下线服务，下线事件  默认推送全部，有group推group，再到里面的version
    void setDOWNServiceInfoD(ServiceInfo serviceInfo);

    //修改版本号，修改版本事件  默认推送全部，有group推group，再到里面的version
    void setVersionServiceInfo(ServiceInfo serviceInfo);

    //设置分组，分组事件  默认推送全部，有group推group，再到里面的version
    void setGroupServiceInfo(ServiceInfo serviceInfo);

}
